The invention relates to the field of optical information processing. More specifically, the invention relates to an optical latch for use in optical information processors.
Electronic latches are well known. Electronic latches are a fundamental part of any electronic computer system. Latches are used as temporary registers and as long term memory storage devices. Even relatively simple information processors will typically contain at least several latches.
FIG. 1 illustrates a type of prior art electronic latch 300. The latch illustrated in FIG. 1 is also called an 8-bit register. The latch 300 includes 8 integrated circuit D flip-flops 10-0, . . . , 10-7 arranged in parallel. When a CLOCK pulse occurs at time t.sub.1 the values of the input bits I.sub.0 through I.sub.7 are stored in their associated D flip-flop 10. Each input bit I.sub.0 through I.sub.7 may be either a logic 0 or a logic 1. For example, I.sub.0 and I.sub.1 may be 0 while I.sub.2 through I.sub.7 may be 1. At a second CLOCK pulse t.sub.2 (t.sub.2 &gt;t.sub.1) the stored input bits are transmitted as output bits 0.sub.0 through 0.sub.7. In this manner the latch 300 acts as a storage register.
The latch 300 also includes an additional control signal called STROBE. When the STROBE signal is active the output terminals 20-0, . . . , 20-7 go into a high impedance state rather than transmitting voltages or currents associated with logical values of 0 or 1. The high impedance state prevents the output terminals 20 from driving or loading any other circuits 30 connected to the latch 300. Thus, the high impedance state allows the latch 300 to be electrically disconnected from other circuits to which the latch is physically connected.
Optical information processors have recently received considerable attention. There are fundamental differences between optical processors based on optical circuits, in which the information carriers are photons, and electronic processors based on electronic circuits, in which the information carriers are electrons. In optical circuits the photon carriers do not interact with one another, while in electronic circuits the electron carriers do interact with one another. This means that in optical circuits interconnect possibilities exist which do not exist with electronic circuits. In particular, optical circuits allow parallel architectures which perform arithmetic and logical operations in completely parallel, single step processes. Since the speed of optical devices is essentially limited to the time it takes for a photon to transit a device, no faster computation time is possible.
Optical information processors require efficient and simple optical latches analogous to the electronic latch 300 described above. Optical addition and storage units have been proposed by Habiby et al. in "Optical Information Processing For Aerospace Applications II," NASA Conference Publication 2302, Aug. 30-31, 1983, incorporated herein by reference. The adder disclosed by Habiby et al. uses optical Fourier transform techniques in conjunction with a liquid crystal light valve to perform positionally encoded residue number system addition. The adder disclosed in Habiby et al. may be used as a storage unit by fixing one input at zero. However, the Habiby et al. storage unit can only be used with positionally encoded, or one-active-line-at-a-time, inputs. In other words, the Habiby et al. storage unit cannot accommodate more than one active input line. Since binary representations of a number typically have more than one non-zero bit, the Habiby et al. storage unit will not accommodate binary encoded inputs. In addition, the Habiby et al. unit would be slow in operation due to the use of a light valve and also requires a rather complicated light valve structure and other hardware.
U.S. Pat. No. 4,797,843 issued to Falk et al. on Jan. 10, 1989 and entitled "Parallel Optical Arithmetic/Logic Unit," incorporated herein by reference, discloses an adder which could be used as a storage unit by fixing one input at zero. However, the adder disclosed in the '843 patent, which also uses Fourier transform techniques, can also only be used with positional encoding. The '843 adder would produce spurious outputs if more than one input line in a channel were active.